import br.com.nooclix.salon.ui.dto.customer.CustomerTO;
import br.com.nooclix.salon.ui.util.WindowsMessage;

import mx.controls.Alert;
import mx.events.CloseEvent;

protected var customer:CustomerTO

protected var bySearch:Boolean = false;

public function save():void{
	
	var customer:CustomerTO = new CustomerTO();
	customer.person = personView.getPerson();
	if(validateCpf(customer.person.cpf) == true){
		WindowsMessage.alarm("CPF inválido!");
	}else{
	customerRemote.persist(customer);
	}

}

private function validateCpf(cpf:String):Boolean{
	var toReturn:Boolean = false;
	if(cpf == "11111111111"){
		toReturn = true;
	}else if(cpf == "22222222222"){
		toReturn = true;
	}else if(cpf == "33333333333"){
		toReturn = true;
	}else if(cpf == "44444444444"){
		toReturn = true;
	}else if(cpf == "55555555555"){
		toReturn = true;
	}else if(cpf == "66666666666"){
		toReturn = true;
	}else if(cpf == "77777777777"){
		toReturn = true;
	}else if(cpf == "88888888888"){
		toReturn = true;
	}else if(cpf == "99999999999"){
		toReturn = true;
	}else if(cpf == "00000000000"){
		toReturn = true;
	}
	return toReturn;
}

public function clearFields():void{
	
}
public function customerUpdate():void{
	//Aqui ele recupera o valor de person, de personView
	//Porém, person não depende de outra tabela para existir, assim como employee depende de person
	customer.person = personView.getPerson();
	customerRemote.update(customer);
	
}

private function findByName():void{
	
	customerRemote.findByName(fieldSearch.text);
	
}


private function removeCustomer():void{
	if(gridCustomers.selectedItem == null){
		WindowsMessage.alarmWithTitle("Ops, selecione um(a) cliente para poder excluir.","Exclusão");
		return;
	}
	
	var c:CustomerTO = gridCustomers.selectedItem as CustomerTO; 
	
	WindowsMessage.question("Deseja excluir o(a) cliente "+ c.person.name,"Deleção",function (event:CloseEvent):void{
		if(event.detail == Alert.YES){
			customerRemote.remove(c);		
		}
	});
	
	
}

private function showCustomer():void{
	
	if(gridCustomers.selectedItem == null){
		WindowsMessage.alarmWithTitle("Ops, selecione um(a) cliente para visualizá-lo.","Visualização");
		return;
	}
	this.currentState = "update";
	customer = gridCustomers.selectedItem as CustomerTO;
	personView.setPerson(customer.person);
	
}

private function backSearch():void{
	
	findByName();
	personView.clearFields();
	this.currentState = "search";

}

private function newCustomer():void{
	
	this.currentState = "create";
	bySearch = true;
	
}